Skip to content

Conversation

ngoldbaum
Copy link
Contributor

Fixes #129

I think these days there's no need to have an optional dependency on Cython. You can declare cython as a build dependency in your pyproject.toml and pip or uv will install Cython in the build environment.

I make use of that capability to substantially simplify the setup.py file.

Since creating a pyproject.toml file automatically opts into pep 517 isolated builds, I also took the opportunity to move all the static metadata into pyproject.toml.

I probably also need to update the makefile and readme but I didn't want to do that without confirming that this approach is OK with the maintainers.

To get the CI to pass I also had to drop Python 3.8 support. Python 3.8 has been EOL since October 2024.

pyproject.toml Outdated
"Environment :: Web Environment",
"Development Status :: 5 - Production/Stable",
]
requires-python = ">=3.8"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3.9 per the changes

@zweizeichen
Copy link

While you're at it... (I know, sorry)

Would you mind adding Python 3.14 to the build so wheels for 3.14 get uploaded once this has been merged and released?

At this time there's only 3.13

@ngoldbaum
Copy link
Contributor Author

Would you mind adding Python 3.14 to the build so wheels for 3.14 get uploaded once this has been merged and released?

Sure! I was planning to do that in a followup but I can do it here just as well.

I'll try to get this done this week but I'm traveling and may not have time until next week.

@ngoldbaum
Copy link
Contributor Author

Sure! I was planning to do that in a followup but I can do it here just as well.

Actually, on second thought, I'll open a followup with this. I still haven't heard from a project maintainer on this PR and I'm not sure if they're OK with these changes.

@Carreau
Copy link
Contributor

Carreau commented Oct 8, 2025

Hi, working with @ngoldbaum,

I've updated pyproject.toml to mention 3.9 and increase testing range to 3.14 (which I can also do in a separate PR)

@fantix
Copy link
Member

fantix commented Oct 8, 2025

I believe the Cython build dependency was optional because we package the cythonized .c file in the source tarball released on PyPI, so that users don't have to install Cython when pip install httptools on platforms that don't have a pre-built binary wheel.

I'll work on your PR - which is pretty good already - and get it merged today, hope you don't mind.

* Updated Makefile, support uv
* Pinned setuptools as we use SetupRequirementsError
* Updated release workflow
* Dropped outdated stuff
@fantix fantix merged commit 59bf94f into MagicStack:master Oct 10, 2025
18 checks passed
fantix added a commit that referenced this pull request Oct 10, 2025
Changes
=======

* Modernize packaging and fix CI (#130)
  Drop Python 3.8, add Python 3.14
  Use Cython 3.1.0
  Bump llhttp to 9.3.0
  (by @ngoldbaum @Carreau @fantix in 59bf94f for #129)

* Static Type-checking for httptools (#100)
  (by @Vizonex @KRRT7 in b55f5fe for #100)
@fantix fantix mentioned this pull request Oct 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI is broken

5 participants